;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.6.0 #4309 (Jul 28 2006)
; This file generated Mon Mar 07 22:50:16 2011
;--------------------------------------------------------
	.module main
	.optsdcc -mmcs51 --model-large
	
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl _main
	.globl _int1Vect
	.globl __sdcc_external_startup
	.globl _TF1
	.globl _TR1
	.globl _TF0
	.globl _TR0
	.globl _IE1
	.globl _IT1
	.globl _IE0
	.globl _IT0
	.globl _SM0
	.globl _SM1
	.globl _SM2
	.globl _REN
	.globl _TB8
	.globl _RB8
	.globl _TI
	.globl _RI
	.globl _CY
	.globl _AC
	.globl _F0
	.globl _RS1
	.globl _RS0
	.globl _OV
	.globl _F1
	.globl _P
	.globl _RD
	.globl _WR
	.globl _T1
	.globl _T0
	.globl _INT1
	.globl _INT0
	.globl _TXD0
	.globl _TXD
	.globl _RXD0
	.globl _RXD
	.globl _P3_7
	.globl _P3_6
	.globl _P3_5
	.globl _P3_4
	.globl _P3_3
	.globl _P3_2
	.globl _P3_1
	.globl _P3_0
	.globl _P2_7
	.globl _P2_6
	.globl _P2_5
	.globl _P2_4
	.globl _P2_3
	.globl _P2_2
	.globl _P2_1
	.globl _P2_0
	.globl _P1_7
	.globl _P1_6
	.globl _P1_5
	.globl _P1_4
	.globl _P1_3
	.globl _P1_2
	.globl _P1_1
	.globl _P1_0
	.globl _P0_7
	.globl _P0_6
	.globl _P0_5
	.globl _P0_4
	.globl _P0_3
	.globl _P0_2
	.globl _P0_1
	.globl _P0_0
	.globl _PS
	.globl _PT1
	.globl _PX1
	.globl _PT0
	.globl _PX0
	.globl _EA
	.globl _ES
	.globl _ET1
	.globl _EX1
	.globl _ET0
	.globl _EX0
	.globl _BREG_F7
	.globl _BREG_F6
	.globl _BREG_F5
	.globl _BREG_F4
	.globl _BREG_F3
	.globl _BREG_F2
	.globl _BREG_F1
	.globl _BREG_F0
	.globl _P5_7
	.globl _P5_6
	.globl _P5_5
	.globl _P5_4
	.globl _P5_3
	.globl _P5_2
	.globl _P5_1
	.globl _P5_0
	.globl _P4_7
	.globl _P4_6
	.globl _P4_5
	.globl _P4_4
	.globl _P4_3
	.globl _P4_2
	.globl _P4_1
	.globl _P4_0
	.globl _PX0L
	.globl _PT0L
	.globl _PX1L
	.globl _PT1L
	.globl _PLS
	.globl _PT2L
	.globl _PPCL
	.globl _EC
	.globl _CCF0
	.globl _CCF1
	.globl _CCF2
	.globl _CCF3
	.globl _CCF4
	.globl _CR
	.globl _CF
	.globl _TF2
	.globl _EXF2
	.globl _RCLK
	.globl _TCLK
	.globl _EXEN2
	.globl _TR2
	.globl _C_T2
	.globl _CP_RL2
	.globl _T2CON_7
	.globl _T2CON_6
	.globl _T2CON_5
	.globl _T2CON_4
	.globl _T2CON_3
	.globl _T2CON_2
	.globl _T2CON_1
	.globl _T2CON_0
	.globl _PT2
	.globl _ET2
	.globl _TMOD
	.globl _TL1
	.globl _TL0
	.globl _TH1
	.globl _TH0
	.globl _TCON
	.globl _SP
	.globl _SCON
	.globl _SBUF0
	.globl _SBUF
	.globl _PSW
	.globl _PCON
	.globl _P3
	.globl _P2
	.globl _P1
	.globl _P0
	.globl _IP
	.globl _IE
	.globl _DP0L
	.globl _DPL
	.globl _DP0H
	.globl _DPH
	.globl _B
	.globl _ACC
	.globl _EECON
	.globl _KBF
	.globl _KBE
	.globl _KBLS
	.globl _BRL
	.globl _BDRCON
	.globl _T2MOD
	.globl _SPDAT
	.globl _SPSTA
	.globl _SPCON
	.globl _SADEN
	.globl _SADDR
	.globl _WDTPRG
	.globl _WDTRST
	.globl _P5
	.globl _P4
	.globl _IPH1
	.globl _IPL1
	.globl _IPH0
	.globl _IPL0
	.globl _IEN1
	.globl _IEN0
	.globl _CMOD
	.globl _CL
	.globl _CH
	.globl _CCON
	.globl _CCAPM4
	.globl _CCAPM3
	.globl _CCAPM2
	.globl _CCAPM1
	.globl _CCAPM0
	.globl _CCAP4L
	.globl _CCAP3L
	.globl _CCAP2L
	.globl _CCAP1L
	.globl _CCAP0L
	.globl _CCAP4H
	.globl _CCAP3H
	.globl _CCAP2H
	.globl _CCAP1H
	.globl _CCAP0H
	.globl _CKCKON1
	.globl _CKCKON0
	.globl _CKRL
	.globl _AUXR1
	.globl _AUXR
	.globl _TH2
	.globl _TL2
	.globl _RCAP2H
	.globl _RCAP2L
	.globl _T2CON
	.globl _togEvent
	.globl _putchar
	.globl _getchar
	.globl _putstr
	.globl _getstr
	.globl _serialInit
	.globl _initAll
	.globl _initPwm
	.globl _clearScr
	.globl _myDelay
	.globl _printMenu
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
	.area RSEG    (DATA)
G$T2CON$0$0 == 0x00c8
_T2CON	=	0x00c8
G$RCAP2L$0$0 == 0x00ca
_RCAP2L	=	0x00ca
G$RCAP2H$0$0 == 0x00cb
_RCAP2H	=	0x00cb
G$TL2$0$0 == 0x00cc
_TL2	=	0x00cc
G$TH2$0$0 == 0x00cd
_TH2	=	0x00cd
G$AUXR$0$0 == 0x008e
_AUXR	=	0x008e
G$AUXR1$0$0 == 0x00a2
_AUXR1	=	0x00a2
G$CKRL$0$0 == 0x0097
_CKRL	=	0x0097
G$CKCKON0$0$0 == 0x008f
_CKCKON0	=	0x008f
G$CKCKON1$0$0 == 0x008f
_CKCKON1	=	0x008f
G$CCAP0H$0$0 == 0x00fa
_CCAP0H	=	0x00fa
G$CCAP1H$0$0 == 0x00fb
_CCAP1H	=	0x00fb
G$CCAP2H$0$0 == 0x00fc
_CCAP2H	=	0x00fc
G$CCAP3H$0$0 == 0x00fd
_CCAP3H	=	0x00fd
G$CCAP4H$0$0 == 0x00fe
_CCAP4H	=	0x00fe
G$CCAP0L$0$0 == 0x00ea
_CCAP0L	=	0x00ea
G$CCAP1L$0$0 == 0x00eb
_CCAP1L	=	0x00eb
G$CCAP2L$0$0 == 0x00ec
_CCAP2L	=	0x00ec
G$CCAP3L$0$0 == 0x00ed
_CCAP3L	=	0x00ed
G$CCAP4L$0$0 == 0x00ee
_CCAP4L	=	0x00ee
G$CCAPM0$0$0 == 0x00da
_CCAPM0	=	0x00da
G$CCAPM1$0$0 == 0x00db
_CCAPM1	=	0x00db
G$CCAPM2$0$0 == 0x00dc
_CCAPM2	=	0x00dc
G$CCAPM3$0$0 == 0x00dd
_CCAPM3	=	0x00dd
G$CCAPM4$0$0 == 0x00de
_CCAPM4	=	0x00de
G$CCON$0$0 == 0x00d8
_CCON	=	0x00d8
G$CH$0$0 == 0x00f9
_CH	=	0x00f9
G$CL$0$0 == 0x00e9
_CL	=	0x00e9
G$CMOD$0$0 == 0x00d9
_CMOD	=	0x00d9
G$IEN0$0$0 == 0x00a8
_IEN0	=	0x00a8
G$IEN1$0$0 == 0x00b1
_IEN1	=	0x00b1
G$IPL0$0$0 == 0x00b8
_IPL0	=	0x00b8
G$IPH0$0$0 == 0x00b7
_IPH0	=	0x00b7
G$IPL1$0$0 == 0x00b2
_IPL1	=	0x00b2
G$IPH1$0$0 == 0x00b3
_IPH1	=	0x00b3
G$P4$0$0 == 0x00c0
_P4	=	0x00c0
G$P5$0$0 == 0x00d8
_P5	=	0x00d8
G$WDTRST$0$0 == 0x00a6
_WDTRST	=	0x00a6
G$WDTPRG$0$0 == 0x00a7
_WDTPRG	=	0x00a7
G$SADDR$0$0 == 0x00a9
_SADDR	=	0x00a9
G$SADEN$0$0 == 0x00b9
_SADEN	=	0x00b9
G$SPCON$0$0 == 0x00c3
_SPCON	=	0x00c3
G$SPSTA$0$0 == 0x00c4
_SPSTA	=	0x00c4
G$SPDAT$0$0 == 0x00c5
_SPDAT	=	0x00c5
G$T2MOD$0$0 == 0x00c9
_T2MOD	=	0x00c9
G$BDRCON$0$0 == 0x009b
_BDRCON	=	0x009b
G$BRL$0$0 == 0x009a
_BRL	=	0x009a
G$KBLS$0$0 == 0x009c
_KBLS	=	0x009c
G$KBE$0$0 == 0x009d
_KBE	=	0x009d
G$KBF$0$0 == 0x009e
_KBF	=	0x009e
G$EECON$0$0 == 0x00d2
_EECON	=	0x00d2
G$ACC$0$0 == 0x00e0
_ACC	=	0x00e0
G$B$0$0 == 0x00f0
_B	=	0x00f0
G$DPH$0$0 == 0x0083
_DPH	=	0x0083
G$DP0H$0$0 == 0x0083
_DP0H	=	0x0083
G$DPL$0$0 == 0x0082
_DPL	=	0x0082
G$DP0L$0$0 == 0x0082
_DP0L	=	0x0082
G$IE$0$0 == 0x00a8
_IE	=	0x00a8
G$IP$0$0 == 0x00b8
_IP	=	0x00b8
G$P0$0$0 == 0x0080
_P0	=	0x0080
G$P1$0$0 == 0x0090
_P1	=	0x0090
G$P2$0$0 == 0x00a0
_P2	=	0x00a0
G$P3$0$0 == 0x00b0
_P3	=	0x00b0
G$PCON$0$0 == 0x0087
_PCON	=	0x0087
G$PSW$0$0 == 0x00d0
_PSW	=	0x00d0
G$SBUF$0$0 == 0x0099
_SBUF	=	0x0099
G$SBUF0$0$0 == 0x0099
_SBUF0	=	0x0099
G$SCON$0$0 == 0x0098
_SCON	=	0x0098
G$SP$0$0 == 0x0081
_SP	=	0x0081
G$TCON$0$0 == 0x0088
_TCON	=	0x0088
G$TH0$0$0 == 0x008c
_TH0	=	0x008c
G$TH1$0$0 == 0x008d
_TH1	=	0x008d
G$TL0$0$0 == 0x008a
_TL0	=	0x008a
G$TL1$0$0 == 0x008b
_TL1	=	0x008b
G$TMOD$0$0 == 0x0089
_TMOD	=	0x0089
;--------------------------------------------------------
; special function bits
;--------------------------------------------------------
	.area RSEG    (DATA)
G$ET2$0$0 == 0x00ad
_ET2	=	0x00ad
G$PT2$0$0 == 0x00bd
_PT2	=	0x00bd
G$T2CON_0$0$0 == 0x00c8
_T2CON_0	=	0x00c8
G$T2CON_1$0$0 == 0x00c9
_T2CON_1	=	0x00c9
G$T2CON_2$0$0 == 0x00ca
_T2CON_2	=	0x00ca
G$T2CON_3$0$0 == 0x00cb
_T2CON_3	=	0x00cb
G$T2CON_4$0$0 == 0x00cc
_T2CON_4	=	0x00cc
G$T2CON_5$0$0 == 0x00cd
_T2CON_5	=	0x00cd
G$T2CON_6$0$0 == 0x00ce
_T2CON_6	=	0x00ce
G$T2CON_7$0$0 == 0x00cf
_T2CON_7	=	0x00cf
G$CP_RL2$0$0 == 0x00c8
_CP_RL2	=	0x00c8
G$C_T2$0$0 == 0x00c9
_C_T2	=	0x00c9
G$TR2$0$0 == 0x00ca
_TR2	=	0x00ca
G$EXEN2$0$0 == 0x00cb
_EXEN2	=	0x00cb
G$TCLK$0$0 == 0x00cc
_TCLK	=	0x00cc
G$RCLK$0$0 == 0x00cd
_RCLK	=	0x00cd
G$EXF2$0$0 == 0x00ce
_EXF2	=	0x00ce
G$TF2$0$0 == 0x00cf
_TF2	=	0x00cf
G$CF$0$0 == 0x00df
_CF	=	0x00df
G$CR$0$0 == 0x00de
_CR	=	0x00de
G$CCF4$0$0 == 0x00dc
_CCF4	=	0x00dc
G$CCF3$0$0 == 0x00db
_CCF3	=	0x00db
G$CCF2$0$0 == 0x00da
_CCF2	=	0x00da
G$CCF1$0$0 == 0x00d9
_CCF1	=	0x00d9
G$CCF0$0$0 == 0x00d8
_CCF0	=	0x00d8
G$EC$0$0 == 0x00ae
_EC	=	0x00ae
G$PPCL$0$0 == 0x00be
_PPCL	=	0x00be
G$PT2L$0$0 == 0x00bd
_PT2L	=	0x00bd
G$PLS$0$0 == 0x00bc
_PLS	=	0x00bc
G$PT1L$0$0 == 0x00bb
_PT1L	=	0x00bb
G$PX1L$0$0 == 0x00ba
_PX1L	=	0x00ba
G$PT0L$0$0 == 0x00b9
_PT0L	=	0x00b9
G$PX0L$0$0 == 0x00b8
_PX0L	=	0x00b8
G$P4_0$0$0 == 0x00c0
_P4_0	=	0x00c0
G$P4_1$0$0 == 0x00c1
_P4_1	=	0x00c1
G$P4_2$0$0 == 0x00c2
_P4_2	=	0x00c2
G$P4_3$0$0 == 0x00c3
_P4_3	=	0x00c3
G$P4_4$0$0 == 0x00c4
_P4_4	=	0x00c4
G$P4_5$0$0 == 0x00c5
_P4_5	=	0x00c5
G$P4_6$0$0 == 0x00c6
_P4_6	=	0x00c6
G$P4_7$0$0 == 0x00c7
_P4_7	=	0x00c7
G$P5_0$0$0 == 0x00d8
_P5_0	=	0x00d8
G$P5_1$0$0 == 0x00d9
_P5_1	=	0x00d9
G$P5_2$0$0 == 0x00da
_P5_2	=	0x00da
G$P5_3$0$0 == 0x00db
_P5_3	=	0x00db
G$P5_4$0$0 == 0x00dc
_P5_4	=	0x00dc
G$P5_5$0$0 == 0x00dd
_P5_5	=	0x00dd
G$P5_6$0$0 == 0x00de
_P5_6	=	0x00de
G$P5_7$0$0 == 0x00df
_P5_7	=	0x00df
G$BREG_F0$0$0 == 0x00f0
_BREG_F0	=	0x00f0
G$BREG_F1$0$0 == 0x00f1
_BREG_F1	=	0x00f1
G$BREG_F2$0$0 == 0x00f2
_BREG_F2	=	0x00f2
G$BREG_F3$0$0 == 0x00f3
_BREG_F3	=	0x00f3
G$BREG_F4$0$0 == 0x00f4
_BREG_F4	=	0x00f4
G$BREG_F5$0$0 == 0x00f5
_BREG_F5	=	0x00f5
G$BREG_F6$0$0 == 0x00f6
_BREG_F6	=	0x00f6
G$BREG_F7$0$0 == 0x00f7
_BREG_F7	=	0x00f7
G$EX0$0$0 == 0x00a8
_EX0	=	0x00a8
G$ET0$0$0 == 0x00a9
_ET0	=	0x00a9
G$EX1$0$0 == 0x00aa
_EX1	=	0x00aa
G$ET1$0$0 == 0x00ab
_ET1	=	0x00ab
G$ES$0$0 == 0x00ac
_ES	=	0x00ac
G$EA$0$0 == 0x00af
_EA	=	0x00af
G$PX0$0$0 == 0x00b8
_PX0	=	0x00b8
G$PT0$0$0 == 0x00b9
_PT0	=	0x00b9
G$PX1$0$0 == 0x00ba
_PX1	=	0x00ba
G$PT1$0$0 == 0x00bb
_PT1	=	0x00bb
G$PS$0$0 == 0x00bc
_PS	=	0x00bc
G$P0_0$0$0 == 0x0080
_P0_0	=	0x0080
G$P0_1$0$0 == 0x0081
_P0_1	=	0x0081
G$P0_2$0$0 == 0x0082
_P0_2	=	0x0082
G$P0_3$0$0 == 0x0083
_P0_3	=	0x0083
G$P0_4$0$0 == 0x0084
_P0_4	=	0x0084
G$P0_5$0$0 == 0x0085
_P0_5	=	0x0085
G$P0_6$0$0 == 0x0086
_P0_6	=	0x0086
G$P0_7$0$0 == 0x0087
_P0_7	=	0x0087
G$P1_0$0$0 == 0x0090
_P1_0	=	0x0090
G$P1_1$0$0 == 0x0091
_P1_1	=	0x0091
G$P1_2$0$0 == 0x0092
_P1_2	=	0x0092
G$P1_3$0$0 == 0x0093
_P1_3	=	0x0093
G$P1_4$0$0 == 0x0094
_P1_4	=	0x0094
G$P1_5$0$0 == 0x0095
_P1_5	=	0x0095
G$P1_6$0$0 == 0x0096
_P1_6	=	0x0096
G$P1_7$0$0 == 0x0097
_P1_7	=	0x0097
G$P2_0$0$0 == 0x00a0
_P2_0	=	0x00a0
G$P2_1$0$0 == 0x00a1
_P2_1	=	0x00a1
G$P2_2$0$0 == 0x00a2
_P2_2	=	0x00a2
G$P2_3$0$0 == 0x00a3
_P2_3	=	0x00a3
G$P2_4$0$0 == 0x00a4
_P2_4	=	0x00a4
G$P2_5$0$0 == 0x00a5
_P2_5	=	0x00a5
G$P2_6$0$0 == 0x00a6
_P2_6	=	0x00a6
G$P2_7$0$0 == 0x00a7
_P2_7	=	0x00a7
G$P3_0$0$0 == 0x00b0
_P3_0	=	0x00b0
G$P3_1$0$0 == 0x00b1
_P3_1	=	0x00b1
G$P3_2$0$0 == 0x00b2
_P3_2	=	0x00b2
G$P3_3$0$0 == 0x00b3
_P3_3	=	0x00b3
G$P3_4$0$0 == 0x00b4
_P3_4	=	0x00b4
G$P3_5$0$0 == 0x00b5
_P3_5	=	0x00b5
G$P3_6$0$0 == 0x00b6
_P3_6	=	0x00b6
G$P3_7$0$0 == 0x00b7
_P3_7	=	0x00b7
G$RXD$0$0 == 0x00b0
_RXD	=	0x00b0
G$RXD0$0$0 == 0x00b0
_RXD0	=	0x00b0
G$TXD$0$0 == 0x00b1
_TXD	=	0x00b1
G$TXD0$0$0 == 0x00b1
_TXD0	=	0x00b1
G$INT0$0$0 == 0x00b2
_INT0	=	0x00b2
G$INT1$0$0 == 0x00b3
_INT1	=	0x00b3
G$T0$0$0 == 0x00b4
_T0	=	0x00b4
G$T1$0$0 == 0x00b5
_T1	=	0x00b5
G$WR$0$0 == 0x00b6
_WR	=	0x00b6
G$RD$0$0 == 0x00b7
_RD	=	0x00b7
G$P$0$0 == 0x00d0
_P	=	0x00d0
G$F1$0$0 == 0x00d1
_F1	=	0x00d1
G$OV$0$0 == 0x00d2
_OV	=	0x00d2
G$RS0$0$0 == 0x00d3
_RS0	=	0x00d3
G$RS1$0$0 == 0x00d4
_RS1	=	0x00d4
G$F0$0$0 == 0x00d5
_F0	=	0x00d5
G$AC$0$0 == 0x00d6
_AC	=	0x00d6
G$CY$0$0 == 0x00d7
_CY	=	0x00d7
G$RI$0$0 == 0x0098
_RI	=	0x0098
G$TI$0$0 == 0x0099
_TI	=	0x0099
G$RB8$0$0 == 0x009a
_RB8	=	0x009a
G$TB8$0$0 == 0x009b
_TB8	=	0x009b
G$REN$0$0 == 0x009c
_REN	=	0x009c
G$SM2$0$0 == 0x009d
_SM2	=	0x009d
G$SM1$0$0 == 0x009e
_SM1	=	0x009e
G$SM0$0$0 == 0x009f
_SM0	=	0x009f
G$IT0$0$0 == 0x0088
_IT0	=	0x0088
G$IE0$0$0 == 0x0089
_IE0	=	0x0089
G$IT1$0$0 == 0x008a
_IT1	=	0x008a
G$IE1$0$0 == 0x008b
_IE1	=	0x008b
G$TR0$0$0 == 0x008c
_TR0	=	0x008c
G$TF0$0$0 == 0x008d
_TF0	=	0x008d
G$TR1$0$0 == 0x008e
_TR1	=	0x008e
G$TF1$0$0 == 0x008f
_TF1	=	0x008f
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
	.area REG_BANK_0	(REL,OVR,DATA)
	.ds 8
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
	.area DSEG    (DATA)
Lgetstr$sloc0$1$0==.
_getstr_sloc0_1_0:
	.ds 3
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area OSEG    (OVR,DATA)
;--------------------------------------------------------
; Stack segment in internal ram 
;--------------------------------------------------------
	.area	SSEG	(DATA)
__start__stack:
	.ds	1

;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
	.area ISEG    (DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
	.area BSEG    (BIT)
;--------------------------------------------------------
; paged external ram data
;--------------------------------------------------------
	.area PSEG    (PAG,XDATA)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
	.area XSEG    (XDATA)
Lputchar$c$1$1==.
_putchar_c_1_1:
	.ds 1
Lputstr$s$1$1==.
_putstr_s_1_1:
	.ds 3
Lgetstr$s$1$1==.
_getstr_s_1_1:
	.ds 3
LserialInit$br$1$1==.
_serialInit_br_1_1:
	.ds 2
LmyDelay$j$1$1==.
_myDelay_j_1_1:
	.ds 2
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
	.area XISEG   (XDATA)
G$togEvent$0$0==.
_togEvent::
	.ds 2
	.area HOME    (CODE)
	.area GSINIT0 (CODE)
	.area GSINIT1 (CODE)
	.area GSINIT2 (CODE)
	.area GSINIT3 (CODE)
	.area GSINIT4 (CODE)
	.area GSINIT5 (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area CSEG    (CODE)
;--------------------------------------------------------
; interrupt vector 
;--------------------------------------------------------
	.area HOME    (CODE)
__interrupt_vect:
	ljmp	__sdcc_gsinit_startup
	reti
	.ds	7
	reti
	.ds	7
	ljmp	_int1Vect
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area HOME    (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area GSINIT  (CODE)
	.globl __sdcc_gsinit_startup
	.globl __sdcc_program_startup
	.globl __start__stack
	.globl __mcs51_genXINIT
	.globl __mcs51_genXRAMCLEAR
	.globl __mcs51_genRAMCLEAR
	.area GSFINAL (CODE)
	ljmp	__sdcc_program_startup
;--------------------------------------------------------
; Home
;--------------------------------------------------------
	.area HOME    (CODE)
	.area CSEG    (CODE)
__sdcc_program_startup:
	lcall	_main
;	return from main will lock up
	sjmp .
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG    (CODE)
;------------------------------------------------------------
;Allocation info for local variables in function '_sdcc_external_startup'
;------------------------------------------------------------
;------------------------------------------------------------
	G$_sdcc_external_startup$0$0 ==.
	C$main.c$113$0$0 ==.
;	../src/main.c:113: _sdcc_external_startup() {
;	-----------------------------------------
;	 function _sdcc_external_startup
;	-----------------------------------------
__sdcc_external_startup:
	ar2 = 0x02
	ar3 = 0x03
	ar4 = 0x04
	ar5 = 0x05
	ar6 = 0x06
	ar7 = 0x07
	ar0 = 0x00
	ar1 = 0x01
	C$main.c$115$1$1 ==.
;	../src/main.c:115: AUXR |= 0x0C;
;	genOr
	orl	_AUXR,#0x0C
	C$main.c$116$1$1 ==.
;	../src/main.c:116: return 0;
;	genRet
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0000
;	Peephole 300	removed redundant label 00101$
	C$main.c$117$1$1 ==.
	XG$_sdcc_external_startup$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'putchar'
;------------------------------------------------------------
;c                         Allocated with name '_putchar_c_1_1'
;------------------------------------------------------------
	G$putchar$0$0 ==.
	C$main.c$137$1$1 ==.
;	../src/main.c:137: void putchar (char c) {
;	-----------------------------------------
;	 function putchar
;	-----------------------------------------
_putchar:
;	genReceive
	mov	a,dpl
	mov	dptr,#_putchar_c_1_1
	movx	@dptr,a
	C$main.c$139$1$1 ==.
;	../src/main.c:139: while ((SCON & 0x02) == 0);    				// wait for TX ready, spin on TI
00101$:
;	genAnd
	mov	a,_SCON
;	genIfxJump
;	Peephole 108.d	removed ljmp by inverse jump logic
	jnb	acc.1,00101$
;	Peephole 300	removed redundant label 00108$
	C$main.c$140$1$1 ==.
;	../src/main.c:140: SBUF = c;  									// load serial port with transmit value
;	genAssign
	mov	dptr,#_putchar_c_1_1
	movx	a,@dptr
	mov	_SBUF,a
	C$main.c$141$1$1 ==.
;	../src/main.c:141: TI = 0;  									// clear TI flag
;	genAssign
	clr	_TI
;	Peephole 300	removed redundant label 00104$
	C$main.c$142$1$1 ==.
	XG$putchar$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'getchar'
;------------------------------------------------------------
;------------------------------------------------------------
	G$getchar$0$0 ==.
	C$main.c$163$1$1 ==.
;	../src/main.c:163: char getchar () {
;	-----------------------------------------
;	 function getchar
;	-----------------------------------------
_getchar:
	C$main.c$165$1$1 ==.
;	../src/main.c:165: while ((SCON & 0x01) == 0);  				// wait for character to be received, spin on RI
00101$:
;	genAnd
	mov	a,_SCON
;	genIfxJump
;	Peephole 108.d	removed ljmp by inverse jump logic
	jnb	acc.0,00101$
;	Peephole 300	removed redundant label 00108$
	C$main.c$166$1$1 ==.
;	../src/main.c:166: RI = 0;										// clear RI flag
;	genAssign
	clr	_RI
	C$main.c$167$1$1 ==.
;	../src/main.c:167: return SBUF;  								// return character from SBUF
;	genAssign
	mov	r2,_SBUF
;	genRet
	mov	dpl,r2
;	Peephole 300	removed redundant label 00104$
	C$main.c$168$1$1 ==.
	XG$getchar$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'putstr'
;------------------------------------------------------------
;s                         Allocated with name '_putstr_s_1_1'
;i                         Allocated with name '_putstr_i_1_1'
;------------------------------------------------------------
	G$putstr$0$0 ==.
	C$main.c$187$1$1 ==.
;	../src/main.c:187: int putstr (char *s) {
;	-----------------------------------------
;	 function putstr
;	-----------------------------------------
_putstr:
;	genReceive
	mov	r2,b
	mov	r3,dph
	mov	a,dpl
	mov	dptr,#_putstr_s_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$main.c$190$1$1 ==.
;	../src/main.c:190: while (*s){									// output characters until NULL found
;	genAssign
	mov	dptr,#_putstr_s_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;	genAssign
	mov	r5,#0x00
	mov	r6,#0x00
00101$:
;	genPointerGet
;	genGenPointerGet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	__gptrget
;	genIfx
	mov	r7,a
;	Peephole 105	removed redundant mov
;	genIfxJump
;	Peephole 108.c	removed ljmp by inverse jump logic
	jz	00108$
;	Peephole 300	removed redundant label 00109$
	C$main.c$191$2$2 ==.
;	../src/main.c:191: putchar(*s++);
;	genAssign
;	genPlus
;     genPlusIncr
	inc	r2
	cjne	r2,#0x00,00110$
	inc	r3
00110$:
;	genAssign
	mov	dptr,#_putstr_s_1_1
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;	genCall
	mov	dpl,r7
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_putchar
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
	C$main.c$192$2$2 ==.
;	../src/main.c:192: i++;
;	genPlus
;     genPlusIncr
;	tail increment optimized (range 8)
	inc	r5
	cjne	r5,#0x00,00101$
	inc	r6
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00101$
00108$:
;	genAssign
	mov	dptr,#_putstr_s_1_1
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	C$main.c$195$1$1 ==.
;	../src/main.c:195: return i+1;
;	genPlus
;     genPlusIncr
	inc	r5
	cjne	r5,#0x00,00111$
	inc	r6
00111$:
;	genRet
	mov	dpl,r5
	mov	dph,r6
;	Peephole 300	removed redundant label 00104$
	C$main.c$196$1$1 ==.
	XG$putstr$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'getstr'
;------------------------------------------------------------
;sloc0                     Allocated with name '_getstr_sloc0_1_0'
;s                         Allocated with name '_getstr_s_1_1'
;i                         Allocated with name '_getstr_i_1_1'
;------------------------------------------------------------
	G$getstr$0$0 ==.
	C$main.c$220$1$1 ==.
;	../src/main.c:220: int getstr (char *s) {
;	-----------------------------------------
;	 function getstr
;	-----------------------------------------
_getstr:
;	genReceive
	mov	r2,b
	mov	r3,dph
	mov	a,dpl
	mov	dptr,#_getstr_s_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$main.c$223$2$2 ==.
;	../src/main.c:223: do {
;	genAssign
	mov	dptr,#_getstr_s_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;	genAssign
	mov	r5,#0x00
	mov	r6,#0x00
00101$:
	C$main.c$224$2$2 ==.
;	../src/main.c:224: s[i] = getchar();
;	genPlus
;	Peephole 236.g	used r5 instead of ar5
	mov	a,r5
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	_getstr_sloc0_1_0,a
;	Peephole 236.g	used r6 instead of ar6
	mov	a,r6
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	(_getstr_sloc0_1_0 + 1),a
	mov	(_getstr_sloc0_1_0 + 2),r4
;	genCall
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_getchar
	mov	r7,dpl
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;	genPointerSet
;	genGenPointerSet
	mov	dpl,_getstr_sloc0_1_0
	mov	dph,(_getstr_sloc0_1_0 + 1)
	mov	b,(_getstr_sloc0_1_0 + 2)
	mov	a,r7
	lcall	__gptrput
	C$main.c$225$2$2 ==.
;	../src/main.c:225: putchar(s[i]);
;	genCall
	mov	dpl,r7
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_putchar
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
	C$main.c$226$2$2 ==.
;	../src/main.c:226: i++;
;	genPlus
;     genPlusIncr
	inc	r5
	cjne	r5,#0x00,00109$
	inc	r6
00109$:
	C$main.c$227$1$1 ==.
;	../src/main.c:227: } while(s[i-1] != 0x0D);  					//0x0D is <CR>
;	genMinus
;	genMinusDec
	mov	a,r5
	add	a,#0xff
	mov	r7,a
	mov	a,r6
	addc	a,#0xff
	mov	r0,a
;	genPlus
;	Peephole 236.g	used r7 instead of ar7
	mov	a,r7
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r7,a
;	Peephole 236.g	used r0 instead of ar0
	mov	a,r0
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	r0,a
	mov	ar1,r4
;	genPointerGet
;	genGenPointerGet
	mov	dpl,r7
	mov	dph,r0
	mov	b,r1
	lcall	__gptrget
	mov	r7,a
;	genCmpEq
;	gencjneshort
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198.b	optimized misc jump sequence
	cjne	r7,#0x0D,00101$
;	Peephole 200.b	removed redundant sjmp
;	Peephole 300	removed redundant label 00110$
;	Peephole 300	removed redundant label 00111$
	C$main.c$228$1$1 ==.
;	../src/main.c:228: s[i-1] = 0x00;								//replace <CR> with NULL (0x00)
;	genMinus
;	genMinusDec
	dec	r5
	cjne	r5,#0xff,00112$
	dec	r6
00112$:
;	genPlus
;	Peephole 236.g	used r5 instead of ar5
	mov	a,r5
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r2,a
;	Peephole 236.g	used r6 instead of ar6
	mov	a,r6
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	r3,a
;	genPointerSet
;	genGenPointerSet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
;	Peephole 181	changed mov to clr
	clr	a
	lcall	__gptrput
	C$main.c$229$1$1 ==.
;	../src/main.c:229: putchar('\n\r');
;	genCall
	mov	dpl,#0x0A
	push	ar5
	push	ar6
	lcall	_putchar
	pop	ar6
	pop	ar5
	C$main.c$230$1$1 ==.
;	../src/main.c:230: return (i-1);
;	genRet
	mov	dpl,r5
	mov	dph,r6
;	Peephole 300	removed redundant label 00104$
	C$main.c$231$1$1 ==.
	XG$getstr$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'serialInit'
;------------------------------------------------------------
;br                        Allocated with name '_serialInit_br_1_1'
;------------------------------------------------------------
	G$serialInit$0$0 ==.
	C$main.c$250$1$1 ==.
;	../src/main.c:250: void serialInit(int br) {
;	-----------------------------------------
;	 function serialInit
;	-----------------------------------------
_serialInit:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_serialInit_br_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$main.c$261$1$1 ==.
;	../src/main.c:261: PCON |= 0x80;								//configure uart, fast baud
;	genOr
	orl	_PCON,#0x80
	C$main.c$262$1$1 ==.
;	../src/main.c:262: SCON = 0x50;                   			 	//SCON: mode 1, 8-bit UART, enable rcvr
;	genAssign
	mov	_SCON,#0x50
	C$main.c$263$1$1 ==.
;	../src/main.c:263: TMOD |= 0x20;                   			//TMOD: timer 1, mode 2, 8-bit reload
;	genOr
	orl	_TMOD,#0x20
	C$main.c$264$1$1 ==.
;	../src/main.c:264: TH1 = br;                   				//TH1:  reload value for baudrate
;	genAssign
	mov	dptr,#_serialInit_br_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCast
	mov	_TH1,r2
	C$main.c$266$1$1 ==.
;	../src/main.c:266: TR1   = 1;                      			//TR1:  timer 1 run
;	genAssign
	setb	_TR1
	C$main.c$267$1$1 ==.
;	../src/main.c:267: TI    = 1;                      			//TI:   set TI to send first char of UART
;	genAssign
	setb	_TI
;	Peephole 300	removed redundant label 00101$
	C$main.c$269$1$1 ==.
	XG$serialInit$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'initAll'
;------------------------------------------------------------
;i                         Allocated with name '_initAll_i_1_1'
;------------------------------------------------------------
	G$initAll$0$0 ==.
	C$main.c$285$1$1 ==.
;	../src/main.c:285: void initAll() {
;	-----------------------------------------
;	 function initAll
;	-----------------------------------------
_initAll:
	C$main.c$289$1$1 ==.
;	../src/main.c:289: EA = 1;
;	genAssign
	setb	_EA
	C$main.c$290$1$1 ==.
;	../src/main.c:290: TMOD |= 0x05;               //setting timer0 in counter mode
;	genOr
	orl	_TMOD,#0x05
	C$main.c$291$1$1 ==.
;	../src/main.c:291: togEvent = ON;
;	genAssign
	mov	dptr,#_togEvent
	mov	a,#0x01
	movx	@dptr,a
	clr	a
	inc	dptr
	movx	@dptr,a
	C$main.c$292$1$1 ==.
;	../src/main.c:292: P1_5 = ON;
;	genAssign
	setb	_P1_5
;	Peephole 300	removed redundant label 00101$
	C$main.c$293$1$1 ==.
	XG$initAll$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'initPwm'
;------------------------------------------------------------
;------------------------------------------------------------
	G$initPwm$0$0 ==.
	C$main.c$295$1$1 ==.
;	../src/main.c:295: void initPwm() {
;	-----------------------------------------
;	 function initPwm
;	-----------------------------------------
_initPwm:
	C$main.c$296$1$1 ==.
;	../src/main.c:296: CCAPM0 = 0x42;            	// enabling PWM for module 2
;	genAssign
	mov	_CCAPM0,#0x42
	C$main.c$297$1$1 ==.
;	../src/main.c:297: CCAPM1 = 0x42;           	// enabling PWM for module 3
;	genAssign
	mov	_CCAPM1,#0x42
	C$main.c$298$1$1 ==.
;	../src/main.c:298: CCAP0H = 0x66;            	// (60% DUTY CYCLE)  PORT P1.3 102
;	genAssign
	mov	_CCAP0H,#0x66
	C$main.c$299$1$1 ==.
;	../src/main.c:299: CCAP1H = 0x99;           	// (40% DUTY CYCLE)  PORT P1.4 153
;	genAssign
	mov	_CCAP1H,#0x99
;	Peephole 300	removed redundant label 00101$
	C$main.c$300$1$1 ==.
	XG$initPwm$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'clearScr'
;------------------------------------------------------------
;------------------------------------------------------------
	G$clearScr$0$0 ==.
	C$main.c$321$1$1 ==.
;	../src/main.c:321: void clearScr() {
;	-----------------------------------------
;	 function clearScr
;	-----------------------------------------
_clearScr:
	C$main.c$322$1$1 ==.
;	../src/main.c:322: printf("\033c");			//reset terminal
;	genIpush
	mov	a,#__str_0
	push	acc
	mov	a,#(__str_0 >> 8)
	push	acc
	mov	a,#0x80
	push	acc
;	genCall
	lcall	_printf
	dec	sp
	dec	sp
	dec	sp
	C$main.c$323$1$1 ==.
;	../src/main.c:323: printf("\033[2J");			//clear screen
;	genIpush
	mov	a,#__str_1
	push	acc
	mov	a,#(__str_1 >> 8)
	push	acc
	mov	a,#0x80
	push	acc
;	genCall
	lcall	_printf
	dec	sp
	dec	sp
	dec	sp
;	Peephole 300	removed redundant label 00101$
	C$main.c$324$1$1 ==.
	XG$clearScr$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'myDelay'
;------------------------------------------------------------
;j                         Allocated with name '_myDelay_j_1_1'
;i                         Allocated with name '_myDelay_i_1_1'
;cnt                       Allocated with name '_myDelay_cnt_1_1'
;------------------------------------------------------------
	G$myDelay$0$0 ==.
	C$main.c$340$1$1 ==.
;	../src/main.c:340: void myDelay(int j) {
;	-----------------------------------------
;	 function myDelay
;	-----------------------------------------
_myDelay:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_myDelay_j_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$main.c$344$1$1 ==.
;	../src/main.c:344: j*=100;
;	genAssign
	mov	dptr,#_myDelay_j_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genAssign
	mov	dptr,#__mulint_PARM_2
	mov	a,#0x64
	movx	@dptr,a
	clr	a
	inc	dptr
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	lcall	__mulint
	mov	a,dpl
	mov	b,dph
;	genAssign
	mov	dptr,#_myDelay_j_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,b
	movx	@dptr,a
	C$main.c$345$1$1 ==.
;	../src/main.c:345: while(j) {
;	genAssign
	mov	dptr,#_myDelay_j_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
00101$:
;	genIfx
	mov	a,r2
	orl	a,r3
;	genIfxJump
	jnz	00169$
	ljmp	00168$
00169$:
	C$main.c$346$1$1 ==.
;	../src/main.c:346: for(i=0; i<100; i++);
;	genAssign
	mov	r4,#0x64
	mov	r5,#0x00
00106$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00170$
	dec	r5
00170$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$347$1$1 ==.
;	../src/main.c:347: for(i=0; i<100; i++);
;	genAssign
	jnz	00106$
;	Peephole 300	removed redundant label 00171$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00109$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00172$
	dec	r5
00172$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$348$1$1 ==.
;	../src/main.c:348: for(i=0; i<100; i++);
;	genAssign
	jnz	00109$
;	Peephole 300	removed redundant label 00173$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00112$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00174$
	dec	r5
00174$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$349$1$1 ==.
;	../src/main.c:349: for(i=0; i<100; i++);
;	genAssign
	jnz	00112$
;	Peephole 300	removed redundant label 00175$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00115$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00176$
	dec	r5
00176$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$350$1$1 ==.
;	../src/main.c:350: for(i=0; i<100; i++);
;	genAssign
	jnz	00115$
;	Peephole 300	removed redundant label 00177$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00118$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00178$
	dec	r5
00178$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$351$1$1 ==.
;	../src/main.c:351: for(i=0; i<100; i++);
;	genAssign
	jnz	00118$
;	Peephole 300	removed redundant label 00179$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00121$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00180$
	dec	r5
00180$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$352$1$1 ==.
;	../src/main.c:352: for(i=0; i<100; i++);
;	genAssign
	jnz	00121$
;	Peephole 300	removed redundant label 00181$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00124$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00182$
	dec	r5
00182$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$353$1$1 ==.
;	../src/main.c:353: for(i=0; i<100; i++);
;	genAssign
	jnz	00124$
;	Peephole 300	removed redundant label 00183$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00127$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00184$
	dec	r5
00184$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$354$1$1 ==.
;	../src/main.c:354: for(i=0; i<100; i++);
;	genAssign
	jnz	00127$
;	Peephole 300	removed redundant label 00185$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00130$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00186$
	dec	r5
00186$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	C$main.c$355$1$1 ==.
;	../src/main.c:355: for(i=0; i<100; i++);
;	genAssign
	jnz	00130$
;	Peephole 300	removed redundant label 00187$
	mov	r4,#0x64
;	Peephole 256.d	loading r5 with zero from a
	mov	r5,a
00133$:
;	genMinus
;	genMinusDec
	dec	r4
	cjne	r4,#0xff,00188$
	dec	r5
00188$:
;	genIfx
	mov	a,r4
	orl	a,r5
;	genIfxJump
;	Peephole 108.b	removed ljmp by inverse jump logic
	jnz	00133$
;	Peephole 300	removed redundant label 00189$
	C$main.c$356$2$2 ==.
;	../src/main.c:356: j--;
;	genMinus
;	genMinusDec
	dec	r2
	cjne	r2,#0xff,00190$
	dec	r3
00190$:
;	genAssign
	mov	dptr,#_myDelay_j_1_1
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	ljmp	00101$
00168$:
;	genAssign
	mov	dptr,#_myDelay_j_1_1
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
;	Peephole 300	removed redundant label 00134$
	C$main.c$359$1$1 ==.
	XG$myDelay$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'printMenu'
;------------------------------------------------------------
;------------------------------------------------------------
	G$printMenu$0$0 ==.
	C$main.c$362$1$1 ==.
;	../src/main.c:362: void printMenu() {
;	-----------------------------------------
;	 function printMenu
;	-----------------------------------------
_printMenu:
	C$main.c$363$1$1 ==.
;	../src/main.c:363: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$364$1$1 ==.
;	../src/main.c:364: printf("****************************************WELCOME********************************\n\n\r");
;	genIpush
	mov	a,#__str_2
	push	acc
	mov	a,#(__str_2 >> 8)
	push	acc
	mov	a,#0x80
	push	acc
;	genCall
	lcall	_printf
	dec	sp
	dec	sp
	dec	sp
	C$main.c$365$1$1 ==.
;	../src/main.c:365: putstr("	 This program can test various features of the ATMEL 89C51RC2 \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_3
	mov	b,#0x80
	lcall	_putstr
	C$main.c$366$1$1 ==.
;	../src/main.c:366: putstr("  Press any number  between  1-9 to  choose from the different options.\n\r\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_4
	mov	b,#0x80
	lcall	_putstr
	C$main.c$367$1$1 ==.
;	../src/main.c:367: putstr("*******************************************************************************\n\n\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_5
	mov	b,#0x80
	lcall	_putstr
	C$main.c$369$1$1 ==.
;	../src/main.c:369: putstr("1-> Clear Counter 0 \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_6
	mov	b,#0x80
	lcall	_putstr
	C$main.c$370$1$1 ==.
;	../src/main.c:370: putstr("2-> Run Counter 0 \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_7
	mov	b,#0x80
	lcall	_putstr
	C$main.c$371$1$1 ==.
;	../src/main.c:371: putstr("3-> Stop Counter 0 \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_8
	mov	b,#0x80
	lcall	_putstr
	C$main.c$372$1$1 ==.
;	../src/main.c:372: putstr("4-> Run PWM \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_9
	mov	b,#0x80
	lcall	_putstr
	C$main.c$373$1$1 ==.
;	../src/main.c:373: putstr("5-> Stop PWM \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_10
	mov	b,#0x80
	lcall	_putstr
	C$main.c$374$1$1 ==.
;	../src/main.c:374: putstr("6-> Read Counter 0 and print value \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_11
	mov	b,#0x80
	lcall	_putstr
	C$main.c$375$1$1 ==.
;	../src/main.c:375: putstr("7-> Enter Idle mode \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_12
	mov	b,#0x80
	lcall	_putstr
	C$main.c$376$1$1 ==.
;	../src/main.c:376: putstr("8-> Enter Power Down Mode \n\r\n");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_13
	mov	b,#0x80
	lcall	_putstr
	C$main.c$377$1$1 ==.
;	../src/main.c:377: putstr("9-> Toggle Count Event (Alternatively, use SPACE) \n\r\n");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_14
	mov	b,#0x80
	lcall	_putstr
	C$main.c$382$1$1 ==.
;	../src/main.c:382: putstr("*******************************************************************************\n\r\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_15
	mov	b,#0x80
	lcall	_putstr
	C$main.c$383$1$1 ==.
;	../src/main.c:383: putstr("Command > ");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_16
	mov	b,#0x80
	C$main.c$384$1$1 ==.
	XG$printMenu$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_putstr
;
;------------------------------------------------------------
;Allocation info for local variables in function 'int1Vect'
;------------------------------------------------------------
;------------------------------------------------------------
	G$int1Vect$0$0 ==.
	C$main.c$386$1$1 ==.
;	../src/main.c:386: void int1Vect(void) __interrupt (IE1_VECTOR) {		 //external interrupt ISR1 routine
;	-----------------------------------------
;	 function int1Vect
;	-----------------------------------------
_int1Vect:
	C$main.c$387$1$1 ==.
;	../src/main.c:387: return;
;	genRet
;	Peephole 300	removed redundant label 00101$
	C$main.c$388$1$1 ==.
	XG$int1Vect$0$0 ==.
	reti
;	eliminated unneeded push/pop psw
;	eliminated unneeded push/pop dpl
;	eliminated unneeded push/pop dph
;	eliminated unneeded push/pop b
;	eliminated unneeded push/pop acc
;------------------------------------------------------------
;Allocation info for local variables in function 'main'
;------------------------------------------------------------
;cmd                       Allocated with name '_main_cmd_1_1'
;------------------------------------------------------------
	G$main$0$0 ==.
	C$main.c$392$1$1 ==.
;	../src/main.c:392: void main() {
;	-----------------------------------------
;	 function main
;	-----------------------------------------
_main:
	C$main.c$396$1$1 ==.
;	../src/main.c:396: serialInit(0xFF); 						//0xFF gives Baud Rate 57600
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x00FF
	lcall	_serialInit
	C$main.c$397$1$1 ==.
;	../src/main.c:397: initAll();
;	genCall
	lcall	_initAll
	C$main.c$398$1$1 ==.
;	../src/main.c:398: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$399$1$1 ==.
;	../src/main.c:399: P1_7 = ON;
;	genAssign
	setb	_P1_7
	C$main.c$401$1$1 ==.
;	../src/main.c:401: while(1){
00114$:
	C$main.c$402$2$2 ==.
;	../src/main.c:402: printMenu();
;	genCall
	lcall	_printMenu
	C$main.c$403$2$2 ==.
;	../src/main.c:403: cmd = getchar();
;	genCall
	lcall	_getchar
	C$main.c$404$2$2 ==.
;	../src/main.c:404: putchar(cmd);
;	genCall
	mov  r2,dpl
;	Peephole 177.a	removed redundant mov
	push	ar2
	lcall	_putchar
	pop	ar2
	C$main.c$406$2$2 ==.
;	../src/main.c:406: switch (cmd) {
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x20,00129$
	ljmp	00110$
00129$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x31,00130$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00101$
00130$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x32,00131$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00102$
00131$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x33,00132$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00103$
00132$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x34,00133$
	ljmp	00104$
00133$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x35,00134$
	ljmp	00105$
00134$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x36,00135$
	ljmp	00106$
00135$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x37,00136$
	ljmp	00107$
00136$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x38,00137$
	ljmp	00108$
00137$:
;	genCmpEq
;	gencjneshort
	cjne	r2,#0x39,00138$
	ljmp	00110$
00138$:
	ljmp	00111$
	C$main.c$407$3$3 ==.
;	../src/main.c:407: case '1':
00101$:
	C$main.c$408$3$3 ==.
;	../src/main.c:408: TH0=0;
;	genAssign
	mov	_TH0,#0x00
	C$main.c$409$3$3 ==.
;	../src/main.c:409: TL0=0;
;	genAssign
	mov	_TL0,#0x00
	C$main.c$410$3$3 ==.
;	../src/main.c:410: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$411$3$3 ==.
;	../src/main.c:411: putstr("Counter 0 Cleared! \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_17
	mov	b,#0x80
	lcall	_putstr
	C$main.c$412$3$3 ==.
;	../src/main.c:412: myDelay(1);
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_myDelay
	C$main.c$413$3$3 ==.
;	../src/main.c:413: break;
	C$main.c$415$3$3 ==.
;	../src/main.c:415: case '2':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00114$
00102$:
	C$main.c$416$3$3 ==.
;	../src/main.c:416: TR0 = 1;
;	genAssign
	setb	_TR0
	C$main.c$417$3$3 ==.
;	../src/main.c:417: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$418$3$3 ==.
;	../src/main.c:418: putstr("Counter 0 Started! \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_18
	mov	b,#0x80
	lcall	_putstr
	C$main.c$419$3$3 ==.
;	../src/main.c:419: putstr("Use option 9 to toggle \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_19
	mov	b,#0x80
	lcall	_putstr
	C$main.c$420$3$3 ==.
;	../src/main.c:420: myDelay(1);
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_myDelay
	C$main.c$421$3$3 ==.
;	../src/main.c:421: break;
	ljmp	00114$
	C$main.c$423$3$3 ==.
;	../src/main.c:423: case '3':
00103$:
	C$main.c$424$3$3 ==.
;	../src/main.c:424: TR0 = 0;
;	genAssign
	clr	_TR0
	C$main.c$425$3$3 ==.
;	../src/main.c:425: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$426$3$3 ==.
;	../src/main.c:426: putstr("Counter 0 Stopped! \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_20
	mov	b,#0x80
	lcall	_putstr
	C$main.c$427$3$3 ==.
;	../src/main.c:427: myDelay(1);
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_myDelay
	C$main.c$428$3$3 ==.
;	../src/main.c:428: break;
	ljmp	00114$
	C$main.c$430$3$3 ==.
;	../src/main.c:430: case '4':
00104$:
	C$main.c$431$3$3 ==.
;	../src/main.c:431: initPwm();
;	genCall
	lcall	_initPwm
	C$main.c$432$3$3 ==.
;	../src/main.c:432: CCON =0x40;
;	genAssign
	mov	_CCON,#0x40
	C$main.c$433$3$3 ==.
;	../src/main.c:433: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$434$3$3 ==.
;	../src/main.c:434: putstr("PWM Started! \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_21
	mov	b,#0x80
	lcall	_putstr
	C$main.c$435$3$3 ==.
;	../src/main.c:435: putstr("Output on Pins P1.3 and P1.4 \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_22
	mov	b,#0x80
	lcall	_putstr
	C$main.c$436$3$3 ==.
;	../src/main.c:436: putstr("Press any key to continue: \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_23
	mov	b,#0x80
	lcall	_putstr
	C$main.c$437$3$3 ==.
;	../src/main.c:437: getchar();
;	genCall
	lcall	_getchar
	C$main.c$438$3$3 ==.
;	../src/main.c:438: break;
	ljmp	00114$
	C$main.c$440$3$3 ==.
;	../src/main.c:440: case '5':
00105$:
	C$main.c$441$3$3 ==.
;	../src/main.c:441: CCON =0x00;
;	genAssign
	mov	_CCON,#0x00
	C$main.c$442$3$3 ==.
;	../src/main.c:442: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$443$3$3 ==.
;	../src/main.c:443: putstr("PWM Stopped! \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_24
	mov	b,#0x80
	lcall	_putstr
	C$main.c$444$3$3 ==.
;	../src/main.c:444: myDelay(1);
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_myDelay
	C$main.c$445$3$3 ==.
;	../src/main.c:445: break;
	ljmp	00114$
	C$main.c$447$3$3 ==.
;	../src/main.c:447: case '6':
00106$:
	C$main.c$448$3$3 ==.
;	../src/main.c:448: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$449$3$3 ==.
;	../src/main.c:449: printf("Count: 0x%02X%02X \n \r", TH0, TL0);
;	genCast
	mov	r2,_TL0
	mov	r3,#0x00
;	genCast
	mov	r4,_TH0
	mov	r5,#0x00
;	genIpush
	push	ar2
	push	ar3
;	genIpush
	push	ar4
	push	ar5
;	genIpush
	mov	a,#__str_25
	push	acc
	mov	a,#(__str_25 >> 8)
	push	acc
	mov	a,#0x80
	push	acc
;	genCall
	lcall	_printf
	mov	a,sp
	add	a,#0xf9
	mov	sp,a
	C$main.c$450$3$3 ==.
;	../src/main.c:450: putstr("Press any key to continue: \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_23
	mov	b,#0x80
	lcall	_putstr
	C$main.c$451$3$3 ==.
;	../src/main.c:451: getchar();
;	genCall
	lcall	_getchar
	C$main.c$452$3$3 ==.
;	../src/main.c:452: break;
	ljmp	00114$
	C$main.c$454$3$3 ==.
;	../src/main.c:454: case '7':
00107$:
	C$main.c$455$3$3 ==.
;	../src/main.c:455: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$456$3$3 ==.
;	../src/main.c:456: putstr("Idle mode activated.\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_26
	mov	b,#0x80
	lcall	_putstr
	C$main.c$457$3$3 ==.
;	../src/main.c:457: P1_7 = OFF;
;	genAssign
	clr	_P1_7
	C$main.c$458$3$3 ==.
;	../src/main.c:458: putstr("Use Reset or INT1 to deactivate.\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_27
	mov	b,#0x80
	lcall	_putstr
	C$main.c$459$3$3 ==.
;	../src/main.c:459: EX1 = 1;
;	genAssign
	setb	_EX1
	C$main.c$460$3$3 ==.
;	../src/main.c:460: PCON |= 0x01;
;	genOr
	orl	_PCON,#0x01
	C$main.c$462$3$3 ==.
;	../src/main.c:462: EX1 = 0;
;	genAssign
	clr	_EX1
	C$main.c$463$3$3 ==.
;	../src/main.c:463: P1_7 = ON;
;	genAssign
	setb	_P1_7
	C$main.c$464$3$3 ==.
;	../src/main.c:464: printf("Idle mode deactivated.\n\r");
;	genIpush
	mov	a,#__str_28
	push	acc
	mov	a,#(__str_28 >> 8)
	push	acc
	mov	a,#0x80
	push	acc
;	genCall
	lcall	_printf
	dec	sp
	dec	sp
	dec	sp
	C$main.c$465$3$3 ==.
;	../src/main.c:465: putstr("Press any key to continue: \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_23
	mov	b,#0x80
	lcall	_putstr
	C$main.c$466$3$3 ==.
;	../src/main.c:466: getchar();
;	genCall
	lcall	_getchar
	C$main.c$467$3$3 ==.
;	../src/main.c:467: break;
	ljmp	00114$
	C$main.c$469$3$3 ==.
;	../src/main.c:469: case '8':
00108$:
	C$main.c$470$3$3 ==.
;	../src/main.c:470: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$471$3$3 ==.
;	../src/main.c:471: putstr("Power Down mode activated.\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_29
	mov	b,#0x80
	lcall	_putstr
	C$main.c$472$3$3 ==.
;	../src/main.c:472: putstr("Use Reset or INT1 to deactivate.\n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_27
	mov	b,#0x80
	lcall	_putstr
	C$main.c$473$3$3 ==.
;	../src/main.c:473: P1_7 = OFF;
;	genAssign
	clr	_P1_7
	C$main.c$474$3$3 ==.
;	../src/main.c:474: EX1 = 1;
;	genAssign
	setb	_EX1
	C$main.c$475$3$3 ==.
;	../src/main.c:475: PCON |= 0x02;
;	genOr
	orl	_PCON,#0x02
	C$main.c$477$3$3 ==.
;	../src/main.c:477: EX1 = 0;
;	genAssign
	clr	_EX1
	C$main.c$478$3$3 ==.
;	../src/main.c:478: P1_7 = ON;
;	genAssign
	setb	_P1_7
	C$main.c$479$3$3 ==.
;	../src/main.c:479: printf("Power Down mode deactivated.\n\r");
;	genIpush
	mov	a,#__str_30
	push	acc
	mov	a,#(__str_30 >> 8)
	push	acc
	mov	a,#0x80
	push	acc
;	genCall
	lcall	_printf
	dec	sp
	dec	sp
	dec	sp
	C$main.c$480$3$3 ==.
;	../src/main.c:480: putstr("Press any key to continue: \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_23
	mov	b,#0x80
	lcall	_putstr
	C$main.c$481$3$3 ==.
;	../src/main.c:481: getchar();
;	genCall
	lcall	_getchar
	C$main.c$482$3$3 ==.
;	../src/main.c:482: break;
	ljmp	00114$
	C$main.c$485$3$3 ==.
;	../src/main.c:485: case '9':
00110$:
	C$main.c$490$3$3 ==.
;	../src/main.c:490: P1_5 = ON;
;	genAssign
	setb	_P1_5
	C$main.c$491$3$3 ==.
;	../src/main.c:491: P1_5 = OFF;
;	genAssign
	clr	_P1_5
	C$main.c$492$3$3 ==.
;	../src/main.c:492: P1_5 = ON;
;	genAssign
	setb	_P1_5
	C$main.c$493$3$3 ==.
;	../src/main.c:493: break;
	ljmp	00114$
	C$main.c$495$3$3 ==.
;	../src/main.c:495: default:
00111$:
	C$main.c$496$3$3 ==.
;	../src/main.c:496: clearScr();
;	genCall
	lcall	_clearScr
	C$main.c$497$3$3 ==.
;	../src/main.c:497: putstr("Invalid Entry, Try again! \n\r");
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#__str_31
	mov	b,#0x80
	lcall	_putstr
	C$main.c$498$3$3 ==.
;	../src/main.c:498: myDelay(1);
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_myDelay
	C$main.c$499$1$1 ==.
;	../src/main.c:499: }
	C$main.c$503$1$1 ==.
	XG$main$0$0 ==.
	ljmp	00114$
;	Peephole 259.b	removed redundant label 00116$ and ret
;
	.area CSEG    (CODE)
	.area CONST   (CODE)
Fmain$_str_0$0$0 == .
__str_0:
	.db 0x1B
	.ascii "c"
	.db 0x00
Fmain$_str_1$0$0 == .
__str_1:
	.db 0x1B
	.ascii "[2J"
	.db 0x00
Fmain$_str_2$0$0 == .
__str_2:
	.ascii "****************************************WELCOME*************"
	.ascii "*******************"
	.db 0x0A
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_3$0$0 == .
__str_3:
	.db 0x09
	.ascii " This program can test various features of the ATMEL 89C51R"
	.ascii "C2 "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_4$0$0 == .
__str_4:
	.ascii "  Press any number  between  1-9 to  choose from the differe"
	.ascii "nt options."
	.db 0x0A
	.db 0x0D
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_5$0$0 == .
__str_5:
	.ascii "************************************************************"
	.ascii "*******************"
	.db 0x0A
	.db 0x0A
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_6$0$0 == .
__str_6:
	.ascii "1-> Clear Counter 0 "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_7$0$0 == .
__str_7:
	.ascii "2-> Run Counter 0 "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_8$0$0 == .
__str_8:
	.ascii "3-> Stop Counter 0 "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_9$0$0 == .
__str_9:
	.ascii "4-> Run PWM "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_10$0$0 == .
__str_10:
	.ascii "5-> Stop PWM "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_11$0$0 == .
__str_11:
	.ascii "6-> Read Counter 0 and print value "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_12$0$0 == .
__str_12:
	.ascii "7-> Enter Idle mode "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_13$0$0 == .
__str_13:
	.ascii "8-> Enter Power Down Mode "
	.db 0x0A
	.db 0x0D
	.db 0x0A
	.db 0x00
Fmain$_str_14$0$0 == .
__str_14:
	.ascii "9-> Toggle Count Event (Alternatively, use SPACE) "
	.db 0x0A
	.db 0x0D
	.db 0x0A
	.db 0x00
Fmain$_str_15$0$0 == .
__str_15:
	.ascii "************************************************************"
	.ascii "*******************"
	.db 0x0A
	.db 0x0D
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_16$0$0 == .
__str_16:
	.ascii "Command > "
	.db 0x00
Fmain$_str_17$0$0 == .
__str_17:
	.ascii "Counter 0 Cleared! "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_18$0$0 == .
__str_18:
	.ascii "Counter 0 Started! "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_19$0$0 == .
__str_19:
	.ascii "Use option 9 to toggle "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_20$0$0 == .
__str_20:
	.ascii "Counter 0 Stopped! "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_21$0$0 == .
__str_21:
	.ascii "PWM Started! "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_22$0$0 == .
__str_22:
	.ascii "Output on Pins P1.3 and P1.4 "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_23$0$0 == .
__str_23:
	.ascii "Press any key to continue: "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_24$0$0 == .
__str_24:
	.ascii "PWM Stopped! "
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_25$0$0 == .
__str_25:
	.ascii "Count: 0x%02X%02X "
	.db 0x0A
	.ascii " "
	.db 0x0D
	.db 0x00
Fmain$_str_26$0$0 == .
__str_26:
	.ascii "Idle mode activated."
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_27$0$0 == .
__str_27:
	.ascii "Use Reset or INT1 to deactivate."
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_28$0$0 == .
__str_28:
	.ascii "Idle mode deactivated."
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_29$0$0 == .
__str_29:
	.ascii "Power Down mode activated."
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_30$0$0 == .
__str_30:
	.ascii "Power Down mode deactivated."
	.db 0x0A
	.db 0x0D
	.db 0x00
Fmain$_str_31$0$0 == .
__str_31:
	.ascii "Invalid Entry, Try again! "
	.db 0x0A
	.db 0x0D
	.db 0x00
	.area XINIT   (CODE)
Fmain$__xinit_togEvent$0$0 == .
__xinit__togEvent:
	.byte #0x01,#0x00
